Аналіз програмної моделі процесу роботи арифметичного конвеєра, ч.2

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні системи

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” / Звіт До Лабораторної роботи №4 З дисципліни: «Комп'ютерні системи» на тему: «Аналіз програмної моделі процесу роботи арифметичного конвеєра, ч.2» Мета роботи: Навчитись здійснювати аналіз програмних моделей комп’ютерних систем, виконаних на мові System C. Хід роботи Завдання Здійснити модернізацію функцій або параметрів арифметичного конвеєра (див. лабораторну роботу № 3), шляхом під’єднання розроблених модулів S1 та S2 (див. лабораторну роботу № 2). Порядок та тип з’єднання мають бути обгрунтовані, можливо розробка буферних або додаткових модулів з метою надавання нових властивостей тестувальній моделі. Лістинг змінених файлів тестової програми #include "systemc.h" #include "stage1.h" #include "stage2.h" #include "stage3.h" #include "s1.h" #include "s2.h" #include "display.h" #include "numgen.h" int sc_main(int, char *[]) { //Signals sc_signal<double> in1; sc_signal<double> in2; sc_signal<double> sum; sc_signal<double> diff; sc_signal<double> prod; sc_signal<double> o1; sc_signal<double> r1; sc_signal<double> r2; sc_signal<double> o2; sc_signal<double> quot; sc_signal<double> powr; //Clock sc_signal<bool> clk; numgen N("numgen"); //instance of `numgen' module N(in1, in2, clk); //Positional port binding S1 s_1("s1"); s_1(in1, in2, power, o1, clk); S2 s_2("s2"); s_2(o1, o2, r1, r2, clk); stage1 S_1("stage1"); //instance of `stage1' module //Named port binding S_1.in1(r1); S_1.in2(r2); S_1.sum(sum); S_1.diff(diff); S_1.clk(clk); stage2 S_2("stage2"); //instance of `stage2' module S_2(sum, diff, prod, quot, clk); //Positional port binding stage3 S_3("stage3"); //instance of `stage3' module S_3(prod, quot, powr, clk); //Positional port binding display D("display"); //instance of `display' module D(powr, clk); //Positional port binding sc_start(0, SC_NS); //Initialize simulation for (int i = 0; i < 50; i++) { clk.write(1); sc_start(10, SC_NS); clk.write(0); sc_start(10, SC_NS); } return 0; } #ifndef TEST_SYSTEMC_S1_H #define TEST_SYSTEMC_S1_H #include "systemc.h" #include "cmath" #include "s2.h" SC_MODULE (S1) { sc_in<double> x; sc_in<double> y; sc_out<double> o1; sc_out<double> o2; sc_in<bool> clk; SC_CTOR(S1) { SC_METHOD(calc_o1); sensitive << x << y << clk.pos(); SC_METHOD(calc_o2); sensitive << x << y << clk.pos(); } void calc_o2() { double x_val = x.read(); double y_val = y.read(); double acc = 0; acc += ((x_val + y_val) / 2.0) & (2 >> x_val); f1.write(acc); } void calc_o1() { double x_val = x.read(); double y_val = y.read(); o1.write(x_val - y_val); } }; #endif //TEST_SYSTEMC_S1_H #ifndef TEST_SYSTEMC_S2_H #define TEST_SYSTEMC_S2_H #include "systemc.h" SC_MODULE(S2) { sc_in<double> a; sc_in<double> b; sc_out<double> r1; sc_out<double> r2; sc_in<bool> clk; SC_CTOR(S2) { SC_METHOD(calc_r1); sensitive << a << b << clk.pos(); SC_METHOD(calc_r2) sensitive << a << b << clk.pos(); } void calc_r1() { double a_val = a.read(); double b_val = b.read(); r1.write(a_val * b_val); } void calc_r2() { r2.write(16); } }; #endif //TEST_SYSTEMC_S2_H Модель арифметичного конвеєра з внесеними змінами / Висновок: на даній лабораторній роботі я навчитився здійснювати аналіз програмних моделей комп’ютерних систем, виконаних на мові System C.
Антиботан аватар за замовчуванням

24.11.2018 16:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини